<!DOCTYPE html>
<html lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>tuple_regexp_match [HALCON算子参考手册]</title>
<style type="text/css">
      body {
    color: #000000;
    background-color: #ffffff;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
}

.body_main {
    margin-left: 35px;
    margin-right: 35px;
}

@media screen and (min-width:992px) {

    .body_main {
        margin-left: 10%;
        margin-right: 10%;
    }

    table.toctable {
        width: 80%
    }
}

@media screen and (min-width:1400px) {

    .body_main {
        margin-left: 15%;
        margin-right: 15%;
    }

    table.toctable {
        width: 70%
    }
}

body>div ul ul {
    margin-left: inherit;
}

a:link {
    color: #0044cc;
}

a:link,
a:visited {
    text-decoration: none;
}

a:link:hover,
a:visited:hover {
    text-decoration: underline;
}

th {
    text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-rendering: optimizeLegibility;
    color: #666666;
}

code {
    font-family: monospace,monospace;
}

h1 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

h2 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

hr {
    border: 0;
    border-top: solid 1px #f28d26;
}

.pre {
    display: block;
    padding-bottom: 1ex;
    font-family: monospace;
    white-space: pre;
}

pre {
    font-family: monospace, monospace;
    padding: 1ex;
    white-space: pre-wrap;
}

.toc {
    font-size: 80%;
    border-top: 1px dashed #f28d26;
    border-bottom: 1px dashed #f28d26;
    padding-top: 5px;
    padding-bottom: 5px;
}

.inv {
    margin: 0;
    border: 0;
    padding: 0;
}

.banner {
    color: #666666;
    padding-left: 1em;
}

.logo {
    background-color: white;
}

.keyboard {
    font-size: 80%;
    padding-left: 3px;
    padding-right: 3px;
    border-radius: 5px;
    border-width: 1px;
    border-style: solid;
    border-color: #f28d26;
    background-color: #f3f3f3;
}

.warning {
    margin-top: 2ex;
    margin-bottom: 1ex;
    padding: 10px;
    text-align: center;
    border: 1px solid;
    color: #bb0000;
    background-color: #fff7f7
}

.imprint {
    margin-top: 1ex;
    font-size: 80%;
    color: #666666;
}

.imprinthead {
    font-weight: bolder;
    color: #666666;
}

.indexlink {
    text-align: right;
    padding-bottom: 5px;
}

.postscript {
    margin-top: 2ex;
    font-size: 80%;
    color: #666666
}

.evenrow {
    background-color: #e7e7ef;
    vertical-align: top;
}

.oddrow {
    background-color: #f7f7ff;
    vertical-align: top;
}

.headrow {
    background-color: #97979f;
    color: #ffffff;
    vertical-align: top;
}

.logorow {
    vertical-align: top;
}

.error {
    color: red;
}

.var {
    font-style: italic
}

.halconoperator {
    font-family: monospace, monospace;
}

span.operator {
    font-family: monospace, monospace;
}

span.procedure {
    font-family: monospace, monospace;
}

span.operation {
    font-family: monospace, monospace;
}

span.feature {
    font-family: Arial, Helvetica, Homerton, sans-serif;
}

ul {
    padding-left: 1.2em;
}

li.dot {
    list-style-type: square;
    color: #f28d26;
}

.breadcrumb {
    font-size: 80%;
    color: white;
    background-color: #062d64;
    margin-bottom: 20px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 15px;
}

.webbar {
    font-size: 80%;
    background-color: #dddddd;
    margin-top: 0px;
    margin-left: -35px;
    margin-right: -35px;
    margin-bottom: 0px;
    padding-top: 5px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 5px;
}

.footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    border-top: 1px dashed #f28d26;
    font-size: 80%;
    color: #666666;
    padding-bottom: 8px;
}

.footer .socialmedia a {
    padding-left: 7px;
}

.socialmedia {
    padding-top: 10px;
}

.copyright {
    margin-top: 19px;
}

.breadcrumb a {
    color: #ffffff;
    border-bottom: 1px solid white;
}

.breadcrumb a:link:hover,
.breadcrumb a:visited:hover {
    text-decoration: none;
    border-bottom: none;
}

.heading {
    margin-top: 1ex;
    font-size: 110%;
    font-weight: bold;
    color: #666666;
}

.text {
    color: black;
}

.example {
    font-size: 80%;
    background-color: #f3f3f3;
    border: 1px dashed #666666;
    padding: 10px;
}

.displaymath {
    display: block;
    text-align: center;
    margin-top: 1ex;
    margin-bottom: 1ex;
}

.title {
    float: left;
    padding-top: 3px;
    padding-bottom: 3px;
}

.signnote {
    font-family: Arial, Helvetica, Homerton, sans-serif;
    font-size: 80%;
    color: #666666;
    font-weight: lighter;
    font-style: italic
}

.par {
    margin-bottom: 1.5em;
}

.parhead {
    text-align: right;
}

.parname {
    float: left;
}

.pardesc {
    font-size: 85%;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    margin-left: 2em;
}

.parcat {
    color: #666;
    font-weight: bold;
}

*[data-if=cpp],
*[data-if=c],
*[data-if=dotnet],
*[data-if=com],
*[data-if=python] {
    display: none;
}

.tabbar {
    text-align: right;
    border-bottom: 1px solid #f28d26;
    margin-bottom: 0.5em;
}

ul.tabs {
    padding-top: 3px;
    padding-bottom: 3px;
    margin-top: 10px;
    margin-bottom: 0;
    font-size: 80%
}

ul.tabs li {
    padding-top: 3px;
    padding-bottom: 3px;
    display: inline;
    overflow: hidden;
    list-style-type: none;
    margin: 0;
    margin-left: 8px;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    border-right: 1px solid #666;
}

ul.tabs li.active {
    border-left: 1px solid #f28d26;
    border-right: 1px solid #f28d26;
    border-top: 1px solid #f28d26;
    border-bottom: 1px solid #fff;
}

ul.tabs li.inactive {
    background-color: #eee;
}

ul.tabs li a {
    padding-left: 5px;
    padding-right: 5px;
    color: #666;
}

ul.tabs li a:link:hover {
    text-decoration: none;
}

ul.tabs li.inactive a {
    color: #666;
}

ul.tabs li.active a {
    color: black;
}

dl.generic dd {
    margin-bottom: 1em;
}

.pari {
    color: olive;
}

.paro {
    color: maroon;
}

.comment {
    font-size: 80%;
    color: green;
    white-space: nowrap;
}

table.grid {
    border-collapse: collapse;
}

table.grid td {
    padding: 5px;
    border: 1px solid;
}

table.layout {
    border: 0px;
}

table.layout td {
    padding: 5px;
}

table.table {
    border-collapse: collapse;
}

table.table td {
    padding: 5px;
    border-left: 0px;
    border-right: 0px;
}

table.table tr:last-child {
    border-bottom: 1px solid;
}

table.table th {
    padding: 5px;
    border-top: 1px solid;
    border-bottom: 1px solid;
    border-left: 0px;
    border-right: 0px;
}

.details_summary {
    cursor: pointer;
}

table.toctable {
    width: 100%;
}

table.toctable col:first-child {
    width: 20%;
}

table.toctable col:nth-last-child(2) {
    width: 8%;
}

table.altcolored tr:nth-child(even) {
    background-color: #f3f3f3;
}

    </style>
<!--OP_REF_STYLE_END-->
<script>
    <!--
var active_lang='hdevelop';function switchVisibility(obj,active_lang,new_lang)
{var display_style='inline';
for(var i=0;i<obj.length;i++)
{if(obj.item(i).getAttribute('data-if')==new_lang)
{obj.item(i).style.display=display_style;}
if(obj.item(i).getAttribute('data-if')==active_lang)
{obj.item(i).style.display='none';}}
return;}
function toggleLanguage(new_lang,initial)
{if(active_lang!=new_lang)
{var lis=document.getElementsByTagName('li');for(var i=0;i<lis.length;i++)
{if(lis.item(i).id=='syn-'+new_lang)
{lis.item(i).className='active';}
else
{lis.item(i).className='inactive';}}
var divs=document.getElementsByTagName('div');var spans=document.getElementsByTagName('span');switchVisibility(divs,active_lang,new_lang);switchVisibility(spans,active_lang,new_lang);if(!initial)
{setCookie("halcon_reference_language",new_lang,null,null);}
active_lang=new_lang;}
return;}
function setCookie(name,value,domain,exp_offset,path,secure)
{localStorage.setItem(name,value);}
function getCookie(name)
{return localStorage.getItem(name);}
function initialize()
{var qs=location.href.split('?')[1];var qs_lang_raw=location.href.split('interface=')[1];var qs_lang;if(qs_lang_raw)
{qs_lang=qs_lang_raw.split('#')[0];}
var cookie_lang=getCookie("halcon_reference_language");var new_lang;if((qs_lang=="hdevelop")||(qs_lang=="dotnet")||(qs_lang=="python")||(qs_lang=="cpp")||(qs_lang=="c"))
{new_lang=qs_lang;setCookie("halcon_reference_language",new_lang,null,null);}
else if((cookie_lang=="hdevelop")||(cookie_lang=="dotnet")||(cookie_lang=="python")||(cookie_lang=="cpp")||(cookie_lang=="c"))
{new_lang=cookie_lang;}
else
{new_lang="hdevelop";}
toggleLanguage(new_lang,1);return;}
-->

  </script>
</head>
<body onload="initialize();">
<div class="breadcrumb">
<br class="inv"><a href="index.html">目录</a> / <a href="toc_tuple.html">Tuple</a> / <a href="toc_tuple_stringoperations.html">String Operations</a><br class="inv">
</div>
<div class="body_main">
<div class="tabbar"><ul class="tabs">
<li id="syn-hdevelop" class="active"><a href="javascript:void(0);" onclick="toggleLanguage('hdevelop')" onfocus="blur()">HDevelop</a></li>
<li id="syn-dotnet" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('dotnet')" onfocus="blur()">.NET</a></li>
<li id="syn-python" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('python')" onfocus="blur()">Python</a></li>
<li id="syn-cpp" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('cpp')" onfocus="blur()">C++</a></li>
<li id="syn-c" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('c')" onfocus="blur()">C</a></li>
</ul></div>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<!--OP_REF_HEADER_END-->
<h1 id="sec_name">
<span data-if="hdevelop" style="display:inline;">tuple_regexp_match</span><span data-if="c" style="display:none;">tuple_regexp_match</span><span data-if="cpp" style="display:none;">TupleRegexpMatch</span><span data-if="dotnet" style="display:none;">TupleRegexpMatch</span><span data-if="python" style="display:none;">tuple_regexp_match</span> (算子名称)</h1>
<h2>名称</h2>
<p><code><span data-if="hdevelop" style="display:inline;">tuple_regexp_match</span><span data-if="c" style="display:none;">tuple_regexp_match</span><span data-if="cpp" style="display:none;">TupleRegexpMatch</span><span data-if="dotnet" style="display:none;">TupleRegexpMatch</span><span data-if="python" style="display:none;">tuple_regexp_match</span></code> — Extract substrings using regular expressions.</p>
<h2 id="sec_synopsis">参数签名</h2>
<div data-if="hdevelop" style="display:inline;">
<p>
<code><b>tuple_regexp_match</b>( :  : <a href="#Data"><i>Data</i></a>, <a href="#Expression"><i>Expression</i></a> : <a href="#Matches"><i>Matches</i></a>)</code></p>
</div>
<div data-if="c" style="display:none;">
<p>
<code>Herror <b>tuple_regexp_match</b>(const char* <a href="#Data"><i>Data</i></a>, const char* <a href="#Expression"><i>Expression</i></a>, char* <a href="#Matches"><i>Matches</i></a>)</code></p>
<p>
<code>Herror <b>T_tuple_regexp_match</b>(const Htuple <a href="#Data"><i>Data</i></a>, const Htuple <a href="#Expression"><i>Expression</i></a>, Htuple* <a href="#Matches"><i>Matches</i></a>)</code></p>
</div>
<div data-if="cpp" style="display:none;">
<p>
<code>void <b>TupleRegexpMatch</b>(const HTuple&amp; <a href="#Data"><i>Data</i></a>, const HTuple&amp; <a href="#Expression"><i>Expression</i></a>, HTuple* <a href="#Matches"><i>Matches</i></a>)</code></p>
<p>
<code><a href="HTuple.html">HTuple</a> <a href="HTuple.html">HTuple</a>::<b>TupleRegexpMatch</b>(const HTuple&amp; <a href="#Expression"><i>Expression</i></a>) const</code></p>
</div>
<div data-if="com" style="display:none;"></div>
<div data-if="dotnet" style="display:none;">
<p>
<code>static void <a href="HOperatorSet.html">HOperatorSet</a>.<b>TupleRegexpMatch</b>(<a href="HTuple.html">HTuple</a> <a href="#Data"><i>data</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Expression"><i>expression</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Matches"><i>matches</i></a>)</code></p>
<p>
<code><a href="HTuple.html">HTuple</a> <a href="HTuple.html">HTuple</a>.<b>TupleRegexpMatch</b>(<a href="HTuple.html">HTuple</a> <a href="#Expression"><i>expression</i></a>)</code></p>
</div>
<div data-if="python" style="display:none;">
<p>
<code>def <b>tuple_regexp_match</b>(<a href="#Data"><i>data</i></a>: MaybeSequence[str], <a href="#Expression"><i>expression</i></a>: MaybeSequence[str]) -&gt; Sequence[str]</code></p>
<p>
<code>def <b>tuple_regexp_match_s</b>(<a href="#Data"><i>data</i></a>: MaybeSequence[str], <a href="#Expression"><i>expression</i></a>: MaybeSequence[str]) -&gt; str</code></p>
</div>
<h2 id="sec_description">描述</h2>
<p><code><span data-if="hdevelop" style="display:inline">tuple_regexp_match</span><span data-if="c" style="display:none">tuple_regexp_match</span><span data-if="cpp" style="display:none">TupleRegexpMatch</span><span data-if="com" style="display:none">TupleRegexpMatch</span><span data-if="dotnet" style="display:none">TupleRegexpMatch</span><span data-if="python" style="display:none">tuple_regexp_match</span></code> applies the regular expression in
<a href="#Expression"><i><code><span data-if="hdevelop" style="display:inline">Expression</span><span data-if="c" style="display:none">Expression</span><span data-if="cpp" style="display:none">Expression</span><span data-if="com" style="display:none">Expression</span><span data-if="dotnet" style="display:none">expression</span><span data-if="python" style="display:none">expression</span></code></i></a> to one or more input strings in <a href="#Data"><i><code><span data-if="hdevelop" style="display:inline">Data</span><span data-if="c" style="display:none">Data</span><span data-if="cpp" style="display:none">Data</span><span data-if="com" style="display:none">Data</span><span data-if="dotnet" style="display:none">data</span><span data-if="python" style="display:none">data</span></code></i></a>, and
in each case returns the first matching substring in <a href="#Matches"><i><code><span data-if="hdevelop" style="display:inline">Matches</span><span data-if="c" style="display:none">Matches</span><span data-if="cpp" style="display:none">Matches</span><span data-if="com" style="display:none">Matches</span><span data-if="dotnet" style="display:none">matches</span><span data-if="python" style="display:none">matches</span></code></i></a>.
Normally, one output string is returned for each input string, the output
string being empty if no match was found. However, if the regular
expression contains capturing groups (see below), the behavior depends
on the number of input strings: If there is only a single input string,
the result is a tuple of all captured submatches.
If there are multiple input strings, the output strings represent
the matched pattern of the first capturing group.
</p>
<p>A summary of regular expression syntax is provided here. Basically,
each character in the regular expression represents a literal to match,
except for the following symbols which have a special meaning
(the described syntax is compatible with Perl):
</p>
<div style="text-align:center"><table style="width:100%;margin-left:auto;margin-right:auto" class="grid">
<col span="1" style="width:7%;">
<col span="1" style="width:93%;">
<tr>
<td style="text-align:left">
<span title="1" style="vertical-align:-0.0685559em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="0.723753em" height="0.762112em" viewBox="0 0 11.580048 12.193787">
<!-- Original BoundingBox: -5.790024 -6.096893 5.790024 6.096893 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_94">
      <path style="fill-rule: evenodd;" d="M300.000000 -615.000000L122.000000 -392.000000C115.000000 -384.000000,113.000000 -380.000000,113.000000 -374.000000C113.000000 -363.000000,122.000000 -354.000000,133.000000 -354.000000C141.000000 -354.000000,146.000000 -357.000000,153.000000 -367.000000L300.000000 -552.000000L447.000000 -367.000000C454.000000 -357.000000,459.000000 -354.000000,467.000000 -354.000000C478.000000 -354.000000,487.000000 -363.000000,487.000000 -374.000000C487.000000 -379.000000,484.000000 -385.000000,478.000000 -392.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.225967 11.096893)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHpcrr8r_94"></use>
  </g>
</svg></span>     </td>
<td style="text-align:left"> Matches start of string </td>
</tr>
<tr>
<td style="text-align:left">
<code>$</code>     </td>
<td style="text-align:left"> Matches end of string (a trailing newline is allowed) </td>
</tr>
<tr>
<td style="text-align:left">
<code>.</code>     </td>
<td style="text-align:left"> Matches any character except newline </td>
</tr>
<tr>
<td style="text-align:left">
<code>[...]</code> </td>
<td style="text-align:left"> Matches any character literal listed in the brackets.
<br>
If the first character is a <code>'</code><span title="2" style="vertical-align:-0.0685559em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="0.723753em" height="0.762112em" viewBox="0 0 11.580048 12.193787">
<!-- Original BoundingBox: -5.790024 -6.096893 5.790024 6.096893 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_94">
      <path style="fill-rule: evenodd;" d="M300.000000 -615.000000L122.000000 -392.000000C115.000000 -384.000000,113.000000 -380.000000,113.000000 -374.000000C113.000000 -363.000000,122.000000 -354.000000,133.000000 -354.000000C141.000000 -354.000000,146.000000 -357.000000,153.000000 -367.000000L300.000000 -552.000000L447.000000 -367.000000C454.000000 -357.000000,459.000000 -354.000000,467.000000 -354.000000C478.000000 -354.000000,487.000000 -363.000000,487.000000 -374.000000C487.000000 -379.000000,484.000000 -385.000000,478.000000 -392.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.225967 11.096893)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHpcrr8r_94"></use>
  </g>
</svg></span><code>'</code>,
this matches any character except those in the list.
You can use the <code>'-'</code> character as
in <code>[A-Z0-9]</code> to select character ranges. Other
characters lose their special meaning in brackets, except
<code>'</code><span title="3" style="vertical-align:-0.186607em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="0.723753em" height="0.840813em" viewBox="0 0 11.580048 13.453003">
<!-- Original BoundingBox: -5.790024 -6.726501 5.790024 6.726501 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_92">
      <path style="fill-rule: evenodd;" d="M155.000000 -650.000000C148.000000 -664.000000,143.000000 -668.000000,134.000000 -668.000000C123.000000 -668.000000,113.000000 -659.000000,113.000000 -649.000000C113.000000 -645.000000,114.000000 -641.000000,118.000000 -633.000000L445.000000 63.000000C452.000000 77.000000,457.000000 81.000000,467.000000 81.000000C477.000000 81.000000,487.000000 72.000000,487.000000 62.000000C487.000000 58.000000,486.000000 53.000000,482.000000 46.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.225967 10.467285)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHpcrr8r_92"></use>
  </g>
</svg></span><code>'</code>.
Within these brackets it is possible to use the following
POSIX character classes (note that the additional brackets
are needed):
<br>
<code>[:alnum:]</code>  <span title="4" style="vertical-align:-0.0991602em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="2.71629em" height="0.573321em" viewBox="0 0 43.460632 9.173141">
<!-- Original BoundingBox: -21.730316 -4.586578 21.730316 4.586563 -->
</svg></span> alphabetic and numeric characters
<br>
<code>[:alpha:]</code>  <span title="5" style="vertical-align:-0.0991602em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="2.71629em" height="0.573321em" viewBox="0 0 43.460632 9.173141">
<!-- Original BoundingBox: -21.730316 -4.586578 21.730316 4.586563 -->
</svg></span> alphabetic characters
<br>
<code>[:blank:]</code>  <span title="6" style="vertical-align:-0.0991602em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="2.71629em" height="0.573321em" viewBox="0 0 43.460632 9.173141">
<!-- Original BoundingBox: -21.730316 -4.586578 21.730316 4.586563 -->
</svg></span> space and tab
<br>
<code>[:cntrl:]</code>  <span title="7" style="vertical-align:-0.0991602em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="2.71629em" height="0.573321em" viewBox="0 0 43.460632 9.173141">
<!-- Original BoundingBox: -21.730316 -4.586578 21.730316 4.586563 -->
</svg></span> control characters
<br>
<code>[:digit:]</code>  <span title="8" style="vertical-align:-0.0991602em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="2.71629em" height="0.573321em" viewBox="0 0 43.460632 9.173141">
<!-- Original BoundingBox: -21.730316 -4.586578 21.730316 4.586563 -->
</svg></span> digits
<br>
<code>[:graph:]</code>  <span title="9" style="vertical-align:-0.0991602em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="2.71629em" height="0.573321em" viewBox="0 0 43.460632 9.173141">
<!-- Original BoundingBox: -21.730316 -4.586578 21.730316 4.586563 -->
</svg></span> non-blank (like spaces or control characters)
<br>
<code>[:lower:]</code>  <span title="10" style="vertical-align:-0.0991602em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="2.71629em" height="0.573321em" viewBox="0 0 43.460632 9.173141">
<!-- Original BoundingBox: -21.730316 -4.586578 21.730316 4.586563 -->
</svg></span> lowercase alphabetic characters
<br>
<code>[:print:]</code>  <span title="11" style="vertical-align:-0.0991602em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="2.71629em" height="0.573321em" viewBox="0 0 43.460632 9.173141">
<!-- Original BoundingBox: -21.730316 -4.586578 21.730316 4.586563 -->
</svg></span> like <code>[:graph:]</code> but including spaces
<br>
<code>[:punct:]</code>  <span title="12" style="vertical-align:-0.0991602em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="2.71629em" height="0.573321em" viewBox="0 0 43.460632 9.173141">
<!-- Original BoundingBox: -21.730316 -4.586578 21.730316 4.586563 -->
</svg></span> punctuation characters
<br>
<code>[:space:]</code>  <span title="13" style="vertical-align:-0.0991602em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="2.71629em" height="0.573321em" viewBox="0 0 43.460632 9.173141">
<!-- Original BoundingBox: -21.730316 -4.586578 21.730316 4.586563 -->
</svg></span> all whitespace characters (<code>[:blank:]</code>, newline, ...)
<br>
<code>[:upper:]</code>  <span title="14" style="vertical-align:-0.0991602em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="2.71629em" height="0.573321em" viewBox="0 0 43.460632 9.173141">
<!-- Original BoundingBox: -21.730316 -4.586578 21.730316 4.586563 -->
</svg></span> uppercase alphabetic characters
<br>
<code>[:xdigit:]</code> <span title="15" style="vertical-align:-0.0991602em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="2.11853em" height="0.573321em" viewBox="0 0 33.896439 9.173141">
<!-- Original BoundingBox: -16.948227 -4.586578 16.948212 4.586563 -->
</svg></span>           digits allowed in hexadecimal numbers (0-9a-fA-F). </td>
</tr>
<tr>
<td style="text-align:left">
<code>*</code>                    </td>
<td style="text-align:left"> Allows 0 or more repetitions of preceding literal or group </td>
</tr>
<tr>
<td style="text-align:left">
<code>+</code>                    </td>
<td style="text-align:left"> Allows 1 or more repetitions of preceding literal or group </td>
</tr>
<tr>
<td style="text-align:left">
<code>?</code>                    </td>
<td style="text-align:left"> Allows 0 or 1 repetitions of preceding literal or group </td>
</tr>
<tr>
<td style="text-align:left">
<span title="16" style="vertical-align:-0.232942em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="3.1148em" height="0.871702em" viewBox="0 0 49.836823 13.947235">
<!-- Original BoundingBox: -24.918411 -6.973618 24.918411 6.973618 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_44">
      <path style="fill-rule: evenodd;" d="M207.000000 -145.000000L137.000000 105.000000C136.000000 109.000000,135.000000 112.000000,135.000000 116.000000C135.000000 132.000000,148.000000 145.000000,164.000000 145.000000C177.000000 145.000000,185.000000 139.000000,195.000000 120.000000L340.000000 -145.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_109">
      <path style="fill-rule: evenodd;" d="M112.000000 -417.000000L38.000000 -417.000000C20.000000 -417.000000,11.000000 -410.000000,11.000000 -397.000000C11.000000 -383.000000,20.000000 -376.000000,38.000000 -376.000000L72.000000 -376.000000L72.000000 -41.000000L38.000000 -41.000000C20.000000 -41.000000,11.000000 -34.000000,11.000000 -21.000000C11.000000 -7.000000,20.000000 -0.000000,37.000000 -0.000000L146.000000 -0.000000C163.000000 -0.000000,173.000000 -7.000000,173.000000 -21.000000C173.000000 -34.000000,164.000000 -41.000000,146.000000 -41.000000L112.000000 -41.000000L112.000000 -308.000000C150.000000 -365.000000,182.000000 -390.000000,217.000000 -390.000000C251.000000 -390.000000,282.000000 -355.000000,282.000000 -316.000000L282.000000 -0.000000L356.000000 -0.000000C374.000000 -0.000000,383.000000 -7.000000,383.000000 -21.000000C383.000000 -34.000000,374.000000 -41.000000,356.000000 -41.000000L322.000000 -41.000000L322.000000 -308.000000C360.000000 -366.000000,390.000000 -390.000000,426.000000 -390.000000C461.000000 -390.000000,492.000000 -357.000000,492.000000 -319.000000L492.000000 -0.000000L566.000000 -0.000000C584.000000 -0.000000,593.000000 -7.000000,593.000000 -21.000000C593.000000 -34.000000,584.000000 -41.000000,566.000000 -41.000000L532.000000 -41.000000L532.000000 -323.000000C532.000000 -382.000000,485.000000 -431.000000,427.000000 -431.000000C386.000000 -431.000000,353.000000 -410.000000,314.000000 -360.000000C292.000000 -408.000000,260.000000 -431.000000,217.000000 -431.000000C175.000000 -431.000000,146.000000 -413.000000,112.000000 -365.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_110">
      <path style="fill-rule: evenodd;" d="M167.000000 -417.000000L92.000000 -417.000000C74.000000 -417.000000,65.000000 -410.000000,65.000000 -397.000000C65.000000 -383.000000,74.000000 -376.000000,92.000000 -376.000000L126.000000 -376.000000L126.000000 -41.000000L81.000000 -41.000000C62.000000 -41.000000,53.000000 -34.000000,53.000000 -21.000000C53.000000 -7.000000,62.000000 -0.000000,81.000000 -0.000000L212.000000 -0.000000C230.000000 -0.000000,239.000000 -7.000000,239.000000 -21.000000C239.000000 -34.000000,230.000000 -41.000000,212.000000 -41.000000L167.000000 -41.000000L167.000000 -294.000000C199.000000 -335.000000,209.000000 -346.000000,224.000000 -357.000000C252.000000 -380.000000,281.000000 -390.000000,319.000000 -390.000000C358.000000 -390.000000,377.000000 -384.000000,401.000000 -364.000000C426.000000 -343.000000,439.000000 -318.000000,439.000000 -288.000000L439.000000 -41.000000L405.000000 -41.000000C387.000000 -41.000000,378.000000 -34.000000,378.000000 -21.000000C378.000000 -7.000000,387.000000 -0.000000,405.000000 -0.000000L514.000000 -0.000000C532.000000 -0.000000,541.000000 -7.000000,541.000000 -21.000000C541.000000 -34.000000,532.000000 -41.000000,514.000000 -41.000000L480.000000 -41.000000L480.000000 -295.000000C480.000000 -372.000000,412.000000 -431.000000,323.000000 -431.000000C261.000000 -431.000000,225.000000 -412.000000,167.000000 -348.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_123">
      <path style="fill-rule: evenodd;" d="M322.000000 -499.000000C322.000000 -533.000000,345.000000 -560.000000,377.000000 -563.000000C396.000000 -565.000000,403.000000 -570.000000,403.000000 -584.000000C403.000000 -596.000000,394.000000 -604.000000,379.000000 -604.000000C324.000000 -604.000000,281.000000 -558.000000,281.000000 -499.000000L281.000000 -326.000000C281.000000 -289.000000,257.000000 -264.000000,221.000000 -261.000000C205.000000 -260.000000,197.000000 -253.000000,197.000000 -240.000000C197.000000 -226.000000,205.000000 -220.000000,221.000000 -219.000000C257.000000 -216.000000,281.000000 -190.000000,281.000000 -154.000000L281.000000 19.000000C281.000000 78.000000,324.000000 124.000000,379.000000 124.000000C394.000000 124.000000,403.000000 116.000000,403.000000 104.000000C403.000000 90.000000,396.000000 85.000000,377.000000 83.000000C345.000000 80.000000,322.000000 53.000000,322.000000 19.000000L322.000000 -154.000000C322.000000 -195.000000,311.000000 -216.000000,278.000000 -240.000000C311.000000 -264.000000,322.000000 -285.000000,322.000000 -326.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_125">
      <path style="fill-rule: evenodd;" d="M278.000000 19.000000C278.000000 53.000000,255.000000 80.000000,223.000000 83.000000C204.000000 85.000000,197.000000 90.000000,197.000000 104.000000C197.000000 116.000000,206.000000 124.000000,221.000000 124.000000C276.000000 124.000000,319.000000 78.000000,319.000000 19.000000L319.000000 -154.000000C319.000000 -191.000000,343.000000 -216.000000,379.000000 -219.000000C395.000000 -220.000000,403.000000 -227.000000,403.000000 -240.000000C403.000000 -254.000000,395.000000 -260.000000,379.000000 -261.000000C343.000000 -264.000000,319.000000 -290.000000,319.000000 -326.000000L319.000000 -499.000000C319.000000 -558.000000,276.000000 -604.000000,221.000000 -604.000000C206.000000 -604.000000,197.000000 -596.000000,197.000000 -584.000000C197.000000 -570.000000,204.000000 -565.000000,223.000000 -563.000000C255.000000 -560.000000,278.000000 -533.000000,278.000000 -499.000000L278.000000 -326.000000C278.000000 -285.000000,289.000000 -264.000000,322.000000 -240.000000C289.000000 -216.000000,278.000000 -195.000000,278.000000 -154.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.097580 10.220169)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHpcrr8r_123"></use>
    <use xlink:href="#GLYPHpcrr8r_110" x="6.000092"></use>
    <use xlink:href="#GLYPHpcrr8r_44" x="12.000185"></use>
    <use xlink:href="#GLYPHpcrr8r_109" x="18.000277"></use>
    <use xlink:href="#GLYPHpcrr8r_125" x="24.000369"></use>
  </g>
</svg></span>  </td>
<td style="text-align:left"> Allows <code>n</code> to <code>m</code> repetitions of preceding literal or group </td>
</tr>
<tr>
<td style="text-align:left">
<span title="17" style="vertical-align:-0.232942em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1.91928em" height="0.871702em" viewBox="0 0 30.708435 13.947235">
<!-- Original BoundingBox: -15.354218 -6.973618 15.354218 6.973618 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_110">
      <path style="fill-rule: evenodd;" d="M167.000000 -417.000000L92.000000 -417.000000C74.000000 -417.000000,65.000000 -410.000000,65.000000 -397.000000C65.000000 -383.000000,74.000000 -376.000000,92.000000 -376.000000L126.000000 -376.000000L126.000000 -41.000000L81.000000 -41.000000C62.000000 -41.000000,53.000000 -34.000000,53.000000 -21.000000C53.000000 -7.000000,62.000000 -0.000000,81.000000 -0.000000L212.000000 -0.000000C230.000000 -0.000000,239.000000 -7.000000,239.000000 -21.000000C239.000000 -34.000000,230.000000 -41.000000,212.000000 -41.000000L167.000000 -41.000000L167.000000 -294.000000C199.000000 -335.000000,209.000000 -346.000000,224.000000 -357.000000C252.000000 -380.000000,281.000000 -390.000000,319.000000 -390.000000C358.000000 -390.000000,377.000000 -384.000000,401.000000 -364.000000C426.000000 -343.000000,439.000000 -318.000000,439.000000 -288.000000L439.000000 -41.000000L405.000000 -41.000000C387.000000 -41.000000,378.000000 -34.000000,378.000000 -21.000000C378.000000 -7.000000,387.000000 -0.000000,405.000000 -0.000000L514.000000 -0.000000C532.000000 -0.000000,541.000000 -7.000000,541.000000 -21.000000C541.000000 -34.000000,532.000000 -41.000000,514.000000 -41.000000L480.000000 -41.000000L480.000000 -295.000000C480.000000 -372.000000,412.000000 -431.000000,323.000000 -431.000000C261.000000 -431.000000,225.000000 -412.000000,167.000000 -348.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_123">
      <path style="fill-rule: evenodd;" d="M322.000000 -499.000000C322.000000 -533.000000,345.000000 -560.000000,377.000000 -563.000000C396.000000 -565.000000,403.000000 -570.000000,403.000000 -584.000000C403.000000 -596.000000,394.000000 -604.000000,379.000000 -604.000000C324.000000 -604.000000,281.000000 -558.000000,281.000000 -499.000000L281.000000 -326.000000C281.000000 -289.000000,257.000000 -264.000000,221.000000 -261.000000C205.000000 -260.000000,197.000000 -253.000000,197.000000 -240.000000C197.000000 -226.000000,205.000000 -220.000000,221.000000 -219.000000C257.000000 -216.000000,281.000000 -190.000000,281.000000 -154.000000L281.000000 19.000000C281.000000 78.000000,324.000000 124.000000,379.000000 124.000000C394.000000 124.000000,403.000000 116.000000,403.000000 104.000000C403.000000 90.000000,396.000000 85.000000,377.000000 83.000000C345.000000 80.000000,322.000000 53.000000,322.000000 19.000000L322.000000 -154.000000C322.000000 -195.000000,311.000000 -216.000000,278.000000 -240.000000C311.000000 -264.000000,322.000000 -285.000000,322.000000 -326.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_125">
      <path style="fill-rule: evenodd;" d="M278.000000 19.000000C278.000000 53.000000,255.000000 80.000000,223.000000 83.000000C204.000000 85.000000,197.000000 90.000000,197.000000 104.000000C197.000000 116.000000,206.000000 124.000000,221.000000 124.000000C276.000000 124.000000,319.000000 78.000000,319.000000 19.000000L319.000000 -154.000000C319.000000 -191.000000,343.000000 -216.000000,379.000000 -219.000000C395.000000 -220.000000,403.000000 -227.000000,403.000000 -240.000000C403.000000 -254.000000,395.000000 -260.000000,379.000000 -261.000000C343.000000 -264.000000,319.000000 -290.000000,319.000000 -326.000000L319.000000 -499.000000C319.000000 -558.000000,276.000000 -604.000000,221.000000 -604.000000C206.000000 -604.000000,197.000000 -596.000000,197.000000 -584.000000C197.000000 -570.000000,204.000000 -565.000000,223.000000 -563.000000C255.000000 -560.000000,278.000000 -533.000000,278.000000 -499.000000L278.000000 -326.000000C278.000000 -285.000000,289.000000 -264.000000,322.000000 -240.000000C289.000000 -216.000000,278.000000 -195.000000,278.000000 -154.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.661774 10.220169)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHpcrr8r_123"></use>
    <use xlink:href="#GLYPHpcrr8r_110" x="6.000092"></use>
    <use xlink:href="#GLYPHpcrr8r_125" x="12.000185"></use>
  </g>
</svg></span>      </td>
<td style="text-align:left"> Allows exactly <code>n</code> repetitions of preceding literal or group </td>
</tr>
<tr>
<td style="text-align:left">
<code>|</code>                    </td>
<td style="text-align:left"> Separates alternative matching expressions </td>
</tr>
<tr>
<td style="text-align:left">
<code>()</code>                   </td>
<td style="text-align:left"> Groups a subpattern and creates a capturing group.
<br>
The substrings captured by this group will be stored separately.
<br>
<code>(?: )</code>  <span title="18" style="vertical-align:-0.0991602em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="2.71629em" height="0.573321em" viewBox="0 0 43.460632 9.173141">
<!-- Original BoundingBox: -21.730316 -4.586578 21.730316 4.586563 -->
</svg></span> Groups a subpattern without creating a capturing group
<br>
<code>(?= )</code>  <span title="19" style="vertical-align:-0.0991602em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="2.71629em" height="0.573321em" viewBox="0 0 43.460632 9.173141">
<!-- Original BoundingBox: -21.730316 -4.586578 21.730316 4.586563 -->
</svg></span> Positive lookahead (requested condition right to the match)
<br>
<code>(?! )</code>  <span title="20" style="vertical-align:-0.0991602em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="2.71629em" height="0.573321em" viewBox="0 0 43.460632 9.173141">
<!-- Original BoundingBox: -21.730316 -4.586578 21.730316 4.586563 -->
</svg></span> Negative lookahead (forbidden condition right to the match)
<br>
<code>(?&lt;= )</code> <span title="21" style="vertical-align:-0.0991602em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="2.11853em" height="0.573321em" viewBox="0 0 33.896439 9.173141">
<!-- Original BoundingBox: -16.948227 -4.586578 16.948212 4.586563 -->
</svg></span> Positive lookbehind (requested condition left to the match)
<br>
<code>(?&lt;! )</code> <span title="22" style="vertical-align:-0.0991602em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="2.11853em" height="0.573321em" viewBox="0 0 33.896439 9.173141">
<!-- Original BoundingBox: -16.948227 -4.586578 16.948212 4.586563 -->
</svg></span> Negative lookbehind (forbidden condition left to the match) </td>
</tr>
<tr>
<td style="text-align:left">
<span title="23" style="vertical-align:-0.186607em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="0.723753em" height="0.840813em" viewBox="0 0 11.580048 13.453003">
<!-- Original BoundingBox: -5.790024 -6.726501 5.790024 6.726501 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_92">
      <path style="fill-rule: evenodd;" d="M155.000000 -650.000000C148.000000 -664.000000,143.000000 -668.000000,134.000000 -668.000000C123.000000 -668.000000,113.000000 -659.000000,113.000000 -649.000000C113.000000 -645.000000,114.000000 -641.000000,118.000000 -633.000000L445.000000 63.000000C452.000000 77.000000,457.000000 81.000000,467.000000 81.000000C477.000000 81.000000,487.000000 72.000000,487.000000 62.000000C487.000000 58.000000,486.000000 53.000000,482.000000 46.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.225967 10.467285)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHpcrr8r_92"></use>
  </g>
</svg></span>      </td>
<td style="text-align:left"> Escapes any special symbol to treat it as a literal.
<br>
<i>Attention:</i> Some host languages like HDevelop and
C/C++ already use the backslash as a general escape character.
In this case, <i><span data-if="hdevelop" style="display:inline">'\.'</span><span data-if="c" style="display:none">"\."</span><span data-if="cpp" style="display:none">"\."</span><span data-if="com" style="display:none">"\."</span><span data-if="dotnet" style="display:none">"\."</span><span data-if="python" style="display:none">"\."</span></i>
matches a literal dot while
<i><span data-if="hdevelop" style="display:inline">'\\'</span><span data-if="c" style="display:none">"\\"</span><span data-if="cpp" style="display:none">"\\"</span><span data-if="com" style="display:none">"\\"</span><span data-if="dotnet" style="display:none">"\\"</span><span data-if="python" style="display:none">"\\"</span></i>
matches a literal backslash.
Furthermore, there are some special codes:
<br>
<span title="24" style="vertical-align:-0.186607em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="3.56312em" height="0.840813em" viewBox="0 0 57.009979 13.453003">
<!-- Original BoundingBox: -28.504990 -6.726501 28.504990 6.726501 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_92">
      <path style="fill-rule: evenodd;" d="M155.000000 -650.000000C148.000000 -664.000000,143.000000 -668.000000,134.000000 -668.000000C123.000000 -668.000000,113.000000 -659.000000,113.000000 -649.000000C113.000000 -645.000000,114.000000 -641.000000,118.000000 -633.000000L445.000000 63.000000C452.000000 77.000000,457.000000 81.000000,467.000000 81.000000C477.000000 81.000000,487.000000 72.000000,487.000000 62.000000C487.000000 58.000000,486.000000 53.000000,482.000000 46.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_100">
      <path style="fill-rule: evenodd;" d="M502.000000 -604.000000L407.000000 -604.000000C389.000000 -604.000000,380.000000 -597.000000,380.000000 -584.000000C380.000000 -570.000000,389.000000 -563.000000,407.000000 -563.000000L461.000000 -563.000000L461.000000 -327.000000C412.000000 -398.000000,354.000000 -431.000000,279.000000 -431.000000C160.000000 -431.000000,63.000000 -331.000000,63.000000 -208.000000C63.000000 -85.000000,160.000000 16.000000,279.000000 16.000000C354.000000 16.000000,414.000000 -19.000000,461.000000 -89.000000L461.000000 -0.000000L556.000000 -0.000000C574.000000 -0.000000,583.000000 -7.000000,583.000000 -21.000000C583.000000 -34.000000,574.000000 -41.000000,556.000000 -41.000000L502.000000 -41.000000M282.000000 -390.000000C383.000000 -390.000000,461.000000 -310.000000,461.000000 -206.000000C461.000000 -106.000000,381.000000 -25.000000,283.000000 -25.000000C183.000000 -25.000000,104.000000 -106.000000,104.000000 -208.000000C104.000000 -309.000000,183.000000 -390.000000,282.000000 -390.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.511002 10.467285)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHpcrr8r_92"></use>
    <use xlink:href="#GLYPHpcrr8r_100" x="6.000092"></use>
  </g>
</svg></span> Matches a digit (Negation: <span title="25" style="vertical-align:-0.186607em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1.32152em" height="0.840813em" viewBox="0 0 21.144241 13.453003">
<!-- Original BoundingBox: -10.572128 -6.726501 10.572113 6.726501 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_68">
      <path style="fill-rule: evenodd;" d="M104.000000 -41.000000L70.000000 -41.000000C52.000000 -41.000000,43.000000 -34.000000,43.000000 -21.000000C43.000000 -7.000000,52.000000 -0.000000,70.000000 -0.000000L290.000000 -0.000000C419.000000 -0.000000,520.000000 -112.000000,520.000000 -254.000000L520.000000 -310.000000C520.000000 -451.000000,419.000000 -563.000000,290.000000 -563.000000L70.000000 -563.000000C52.000000 -563.000000,43.000000 -556.000000,43.000000 -543.000000C43.000000 -529.000000,52.000000 -522.000000,70.000000 -522.000000L104.000000 -522.000000M145.000000 -41.000000L145.000000 -522.000000L288.000000 -522.000000C342.000000 -522.000000,379.000000 -507.000000,414.000000 -472.000000C454.000000 -431.000000,479.000000 -371.000000,479.000000 -318.000000L479.000000 -245.000000C479.000000 -139.000000,391.000000 -41.000000,295.000000 -41.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_92">
      <path style="fill-rule: evenodd;" d="M155.000000 -650.000000C148.000000 -664.000000,143.000000 -668.000000,134.000000 -668.000000C123.000000 -668.000000,113.000000 -659.000000,113.000000 -649.000000C113.000000 -645.000000,114.000000 -641.000000,118.000000 -633.000000L445.000000 63.000000C452.000000 77.000000,457.000000 81.000000,467.000000 81.000000C477.000000 81.000000,487.000000 72.000000,487.000000 62.000000C487.000000 58.000000,486.000000 53.000000,482.000000 46.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.443863 10.467285)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHpcrr8r_92"></use>
    <use xlink:href="#GLYPHpcrr8r_68" x="6.000092"></use>
  </g>
</svg></span>)
<br>
<span title="26" style="vertical-align:-0.186607em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="3.56312em" height="0.840813em" viewBox="0 0 57.009979 13.453003">
<!-- Original BoundingBox: -28.504990 -6.726501 28.504990 6.726501 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_92">
      <path style="fill-rule: evenodd;" d="M155.000000 -650.000000C148.000000 -664.000000,143.000000 -668.000000,134.000000 -668.000000C123.000000 -668.000000,113.000000 -659.000000,113.000000 -649.000000C113.000000 -645.000000,114.000000 -641.000000,118.000000 -633.000000L445.000000 63.000000C452.000000 77.000000,457.000000 81.000000,467.000000 81.000000C477.000000 81.000000,487.000000 72.000000,487.000000 62.000000C487.000000 58.000000,486.000000 53.000000,482.000000 46.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_119">
      <path style="fill-rule: evenodd;" d="M441.000000 -0.000000L524.000000 -376.000000L543.000000 -376.000000C561.000000 -376.000000,570.000000 -383.000000,570.000000 -397.000000C570.000000 -410.000000,561.000000 -417.000000,543.000000 -417.000000L432.000000 -417.000000C414.000000 -417.000000,405.000000 -410.000000,405.000000 -397.000000C405.000000 -383.000000,414.000000 -376.000000,432.000000 -376.000000L482.000000 -376.000000L413.000000 -56.000000L324.000000 -311.000000L273.000000 -311.000000L187.000000 -56.000000L115.000000 -376.000000L168.000000 -376.000000C186.000000 -376.000000,195.000000 -383.000000,195.000000 -397.000000C195.000000 -410.000000,186.000000 -417.000000,168.000000 -417.000000L57.000000 -417.000000C39.000000 -417.000000,30.000000 -410.000000,30.000000 -397.000000C30.000000 -383.000000,39.000000 -376.000000,57.000000 -376.000000L76.000000 -376.000000L160.000000 -0.000000L211.000000 -0.000000L300.000000 -259.000000L391.000000 -0.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.511002 10.467285)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHpcrr8r_92"></use>
    <use xlink:href="#GLYPHpcrr8r_119" x="6.000092"></use>
  </g>
</svg></span> Matches a letter, digit or underscore (Negation: <span title="27" style="vertical-align:-0.186607em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1.32152em" height="0.840813em" viewBox="0 0 21.144241 13.453003">
<!-- Original BoundingBox: -10.572128 -6.726501 10.572113 6.726501 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_87">
      <path style="fill-rule: evenodd;" d="M122.000000 -0.000000L185.000000 -0.000000L300.000000 -400.000000L412.000000 -0.000000L476.000000 -0.000000L538.000000 -522.000000L553.000000 -522.000000C571.000000 -522.000000,580.000000 -529.000000,580.000000 -543.000000C580.000000 -556.000000,571.000000 -563.000000,553.000000 -563.000000L403.000000 -563.000000C385.000000 -563.000000,376.000000 -556.000000,376.000000 -543.000000C376.000000 -529.000000,385.000000 -522.000000,403.000000 -522.000000L499.000000 -522.000000L442.000000 -46.000000L333.000000 -438.000000L271.000000 -438.000000L159.000000 -46.000000L103.000000 -522.000000L196.000000 -522.000000C215.000000 -522.000000,224.000000 -529.000000,224.000000 -543.000000C224.000000 -556.000000,215.000000 -563.000000,196.000000 -563.000000L47.000000 -563.000000C29.000000 -563.000000,20.000000 -556.000000,20.000000 -543.000000C20.000000 -529.000000,29.000000 -522.000000,47.000000 -522.000000L62.000000 -522.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_92">
      <path style="fill-rule: evenodd;" d="M155.000000 -650.000000C148.000000 -664.000000,143.000000 -668.000000,134.000000 -668.000000C123.000000 -668.000000,113.000000 -659.000000,113.000000 -649.000000C113.000000 -645.000000,114.000000 -641.000000,118.000000 -633.000000L445.000000 63.000000C452.000000 77.000000,457.000000 81.000000,467.000000 81.000000C477.000000 81.000000,487.000000 72.000000,487.000000 62.000000C487.000000 58.000000,486.000000 53.000000,482.000000 46.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.443863 10.467285)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHpcrr8r_92"></use>
    <use xlink:href="#GLYPHpcrr8r_87" x="6.000092"></use>
  </g>
</svg></span>)
<br>
<span title="28" style="vertical-align:-0.186607em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="3.56312em" height="0.840813em" viewBox="0 0 57.009979 13.453003">
<!-- Original BoundingBox: -28.504990 -6.726501 28.504990 6.726501 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_92">
      <path style="fill-rule: evenodd;" d="M155.000000 -650.000000C148.000000 -664.000000,143.000000 -668.000000,134.000000 -668.000000C123.000000 -668.000000,113.000000 -659.000000,113.000000 -649.000000C113.000000 -645.000000,114.000000 -641.000000,118.000000 -633.000000L445.000000 63.000000C452.000000 77.000000,457.000000 81.000000,467.000000 81.000000C477.000000 81.000000,487.000000 72.000000,487.000000 62.000000C487.000000 58.000000,486.000000 53.000000,482.000000 46.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_115">
      <path style="fill-rule: evenodd;" d="M432.000000 -385.000000C397.000000 -416.000000,352.000000 -431.000000,295.000000 -431.000000C197.000000 -431.000000,124.000000 -383.000000,124.000000 -318.000000C124.000000 -287.000000,142.000000 -257.000000,170.000000 -239.000000C198.000000 -222.000000,226.000000 -215.000000,300.000000 -207.000000C355.000000 -201.000000,382.000000 -194.000000,408.000000 -180.000000C435.000000 -165.000000,452.000000 -140.000000,452.000000 -117.000000C452.000000 -64.000000,386.000000 -25.000000,298.000000 -25.000000C213.000000 -25.000000,144.000000 -62.000000,144.000000 -108.000000L144.000000 -115.000000C144.000000 -128.000000,136.000000 -137.000000,124.000000 -137.000000C110.000000 -137.000000,103.000000 -128.000000,103.000000 -110.000000L103.000000 -27.000000C103.000000 -9.000000,110.000000 -0.000000,124.000000 -0.000000C137.000000 -0.000000,144.000000 -9.000000,144.000000 -27.000000L144.000000 -38.000000C186.000000 -1.000000,236.000000 16.000000,301.000000 16.000000C414.000000 16.000000,497.000000 -40.000000,497.000000 -116.000000C497.000000 -151.000000,478.000000 -185.000000,447.000000 -206.000000C415.000000 -227.000000,378.000000 -238.000000,317.000000 -245.000000C229.000000 -254.000000,223.000000 -256.000000,201.000000 -270.000000C180.000000 -282.000000,169.000000 -299.000000,169.000000 -315.000000C169.000000 -358.000000,225.000000 -390.000000,299.000000 -390.000000C375.000000 -390.000000,427.000000 -361.000000,432.000000 -316.000000C434.000000 -300.000000,441.000000 -293.000000,453.000000 -293.000000C466.000000 -293.000000,473.000000 -302.000000,473.000000 -320.000000L473.000000 -389.000000C473.000000 -408.000000,466.000000 -417.000000,453.000000 -417.000000C440.000000 -417.000000,432.000000 -406.000000,432.000000 -389.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.511002 10.467285)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHpcrr8r_92"></use>
    <use xlink:href="#GLYPHpcrr8r_115" x="6.000092"></use>
  </g>
</svg></span> Matches a white space character (Negation: <span title="29" style="vertical-align:-0.186607em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1.32152em" height="0.840813em" viewBox="0 0 21.144241 13.453003">
<!-- Original BoundingBox: -10.572128 -6.726501 10.572113 6.726501 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_83">
      <path style="fill-rule: evenodd;" d="M445.000000 -517.000000C403.000000 -558.000000,358.000000 -576.000000,299.000000 -576.000000C194.000000 -576.000000,115.000000 -509.000000,115.000000 -421.000000C115.000000 -379.000000,134.000000 -340.000000,167.000000 -317.000000C197.000000 -295.000000,233.000000 -283.000000,303.000000 -271.000000C374.000000 -259.000000,395.000000 -253.000000,419.000000 -237.000000C447.000000 -220.000000,464.000000 -188.000000,464.000000 -153.000000C464.000000 -79.000000,394.000000 -25.000000,301.000000 -25.000000C210.000000 -25.000000,136.000000 -76.000000,133.000000 -142.000000C132.000000 -158.000000,126.000000 -166.000000,113.000000 -166.000000C99.000000 -166.000000,92.000000 -157.000000,92.000000 -139.000000L92.000000 -27.000000C92.000000 -9.000000,99.000000 -0.000000,112.000000 -0.000000C126.000000 -0.000000,133.000000 -9.000000,133.000000 -27.000000L133.000000 -56.000000C174.000000 -9.000000,233.000000 16.000000,302.000000 16.000000C422.000000 16.000000,508.000000 -54.000000,508.000000 -151.000000C508.000000 -202.000000,485.000000 -245.000000,446.000000 -269.000000C416.000000 -288.000000,388.000000 -296.000000,311.000000 -309.000000C249.000000 -319.000000,224.000000 -327.000000,198.000000 -344.000000C173.000000 -361.000000,159.000000 -389.000000,159.000000 -420.000000C159.000000 -486.000000,220.000000 -535.000000,302.000000 -535.000000C380.000000 -535.000000,441.000000 -490.000000,445.000000 -430.000000C446.000000 -414.000000,453.000000 -406.000000,466.000000 -406.000000C479.000000 -406.000000,486.000000 -415.000000,486.000000 -433.000000L486.000000 -536.000000C486.000000 -554.000000,479.000000 -563.000000,466.000000 -563.000000C452.000000 -563.000000,445.000000 -554.000000,445.000000 -536.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_92">
      <path style="fill-rule: evenodd;" d="M155.000000 -650.000000C148.000000 -664.000000,143.000000 -668.000000,134.000000 -668.000000C123.000000 -668.000000,113.000000 -659.000000,113.000000 -649.000000C113.000000 -645.000000,114.000000 -641.000000,118.000000 -633.000000L445.000000 63.000000C452.000000 77.000000,457.000000 81.000000,467.000000 81.000000C477.000000 81.000000,487.000000 72.000000,487.000000 62.000000C487.000000 58.000000,486.000000 53.000000,482.000000 46.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.443863 10.467285)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHpcrr8r_92"></use>
    <use xlink:href="#GLYPHpcrr8r_83" x="6.000092"></use>
  </g>
</svg></span>)
<br>
<span title="30" style="vertical-align:-0.186607em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="3.56312em" height="0.840813em" viewBox="0 0 57.009979 13.453003">
<!-- Original BoundingBox: -28.504990 -6.726501 28.504990 6.726501 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_92">
      <path style="fill-rule: evenodd;" d="M155.000000 -650.000000C148.000000 -664.000000,143.000000 -668.000000,134.000000 -668.000000C123.000000 -668.000000,113.000000 -659.000000,113.000000 -649.000000C113.000000 -645.000000,114.000000 -641.000000,118.000000 -633.000000L445.000000 63.000000C452.000000 77.000000,457.000000 81.000000,467.000000 81.000000C477.000000 81.000000,487.000000 72.000000,487.000000 62.000000C487.000000 58.000000,486.000000 53.000000,482.000000 46.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_98">
      <path style="fill-rule: evenodd;" d="M144.000000 -604.000000L49.000000 -604.000000C31.000000 -604.000000,22.000000 -597.000000,22.000000 -584.000000C22.000000 -570.000000,31.000000 -563.000000,49.000000 -563.000000L103.000000 -563.000000L103.000000 -41.000000L49.000000 -41.000000C31.000000 -41.000000,22.000000 -34.000000,22.000000 -21.000000C22.000000 -7.000000,31.000000 -0.000000,49.000000 -0.000000L144.000000 -0.000000L144.000000 -88.000000C191.000000 -18.000000,251.000000 16.000000,324.000000 16.000000C444.000000 16.000000,541.000000 -85.000000,541.000000 -210.000000C541.000000 -334.000000,446.000000 -431.000000,324.000000 -431.000000C250.000000 -431.000000,194.000000 -399.000000,144.000000 -328.000000M322.000000 -390.000000C422.000000 -390.000000,500.000000 -309.000000,500.000000 -205.000000C500.000000 -107.000000,419.000000 -25.000000,322.000000 -25.000000C223.000000 -25.000000,144.000000 -107.000000,144.000000 -208.000000C144.000000 -309.000000,223.000000 -390.000000,322.000000 -390.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.511002 10.467285)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHpcrr8r_92"></use>
    <use xlink:href="#GLYPHpcrr8r_98" x="6.000092"></use>
  </g>
</svg></span> Matches a word boundary (Negation: <span title="31" style="vertical-align:-0.186607em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1.32152em" height="0.840813em" viewBox="0 0 21.144241 13.453003">
<!-- Original BoundingBox: -10.572128 -6.726501 10.572113 6.726501 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_66">
      <path style="fill-rule: evenodd;" d="M124.000000 -41.000000L70.000000 -41.000000C52.000000 -41.000000,43.000000 -34.000000,43.000000 -21.000000C43.000000 -7.000000,52.000000 -0.000000,70.000000 -0.000000L376.000000 -0.000000C467.000000 -0.000000,541.000000 -69.000000,541.000000 -153.000000C541.000000 -220.000000,498.000000 -268.000000,414.000000 -298.000000C473.000000 -330.000000,499.000000 -367.000000,499.000000 -418.000000C499.000000 -500.000000,425.000000 -563.000000,328.000000 -563.000000L70.000000 -563.000000C52.000000 -563.000000,43.000000 -556.000000,43.000000 -543.000000C43.000000 -529.000000,52.000000 -522.000000,70.000000 -522.000000L124.000000 -522.000000M165.000000 -313.000000L165.000000 -522.000000L329.000000 -522.000000C402.000000 -522.000000,458.000000 -477.000000,458.000000 -419.000000C458.000000 -357.000000,397.000000 -313.000000,312.000000 -313.000000M165.000000 -41.000000L165.000000 -272.000000L314.000000 -272.000000C375.000000 -272.000000,409.000000 -265.000000,441.000000 -246.000000C478.000000 -224.000000,500.000000 -189.000000,500.000000 -153.000000C500.000000 -91.000000,444.000000 -41.000000,373.000000 -41.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_92">
      <path style="fill-rule: evenodd;" d="M155.000000 -650.000000C148.000000 -664.000000,143.000000 -668.000000,134.000000 -668.000000C123.000000 -668.000000,113.000000 -659.000000,113.000000 -649.000000C113.000000 -645.000000,114.000000 -641.000000,118.000000 -633.000000L445.000000 63.000000C452.000000 77.000000,457.000000 81.000000,467.000000 81.000000C477.000000 81.000000,487.000000 72.000000,487.000000 62.000000C487.000000 58.000000,486.000000 53.000000,482.000000 46.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.443863 10.467285)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHpcrr8r_92"></use>
    <use xlink:href="#GLYPHpcrr8r_66" x="6.000092"></use>
  </g>
</svg></span>)
</td>
</tr>
</table></div>
<p>The repeat quantifiers listed in the table above are greedy by default,
i.e., they attempt to maximize the length of the
match. Appending <code>'?'</code> attempts to find a minimal
match, e.g., <code>'+?'</code>.
</p>
<p>If the specified expression is syntactically incorrect, you will
receive an error stating that the value of control parameter 2 is
wrong. Additional details are displayed in a message box if
<a href="set_system.html"><code><span data-if="hdevelop" style="display:inline">set_system('do_low_error', 'true')</span><span data-if="c" style="display:none">set_system("do_low_error", "true")</span><span data-if="cpp" style="display:none">SetSystem("do_low_error", "true")</span><span data-if="com" style="display:none">SetSystem("do_low_error", "true")</span><span data-if="dotnet" style="display:none">SetSystem("do_low_error", "true")</span><span data-if="python" style="display:none">set_system("do_low_error", "true")</span></code></a> is set and in
HDevelop's Output Console.
</p>
<p>Furthermore, you can set some options by passing a string tuple for
<a href="#Expression"><i><code><span data-if="hdevelop" style="display:inline">Expression</span><span data-if="c" style="display:none">Expression</span><span data-if="cpp" style="display:none">Expression</span><span data-if="com" style="display:none">Expression</span><span data-if="dotnet" style="display:none">expression</span><span data-if="python" style="display:none">expression</span></code></i></a>. In this case, the first element is used as the
expression, and each additional element is treated as an option.
</p>
<ul>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'ignore_case'</span><span data-if="c" style="display:none">"ignore_case"</span><span data-if="cpp" style="display:none">"ignore_case"</span><span data-if="com" style="display:none">"ignore_case"</span><span data-if="dotnet" style="display:none">"ignore_case"</span><span data-if="python" style="display:none">"ignore_case"</span></i>:
Perform case-insensitive matching
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'multiline'</span><span data-if="c" style="display:none">"multiline"</span><span data-if="cpp" style="display:none">"multiline"</span><span data-if="com" style="display:none">"multiline"</span><span data-if="dotnet" style="display:none">"multiline"</span><span data-if="python" style="display:none">"multiline"</span></i>:
<code>'</code><span title="32" style="vertical-align:-0.0685559em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="0.723753em" height="0.762112em" viewBox="0 0 11.580048 12.193787">
<!-- Original BoundingBox: -5.790024 -6.096893 5.790024 6.096893 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_94">
      <path style="fill-rule: evenodd;" d="M300.000000 -615.000000L122.000000 -392.000000C115.000000 -384.000000,113.000000 -380.000000,113.000000 -374.000000C113.000000 -363.000000,122.000000 -354.000000,133.000000 -354.000000C141.000000 -354.000000,146.000000 -357.000000,153.000000 -367.000000L300.000000 -552.000000L447.000000 -367.000000C454.000000 -357.000000,459.000000 -354.000000,467.000000 -354.000000C478.000000 -354.000000,487.000000 -363.000000,487.000000 -374.000000C487.000000 -379.000000,484.000000 -385.000000,478.000000 -392.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.225967 11.096893)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHpcrr8r_94"></use>
  </g>
</svg></span><code>'</code> and
<code>'$'</code> match
start and end of individual lines
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'dot_matches_all'</span><span data-if="c" style="display:none">"dot_matches_all"</span><span data-if="cpp" style="display:none">"dot_matches_all"</span><span data-if="com" style="display:none">"dot_matches_all"</span><span data-if="dotnet" style="display:none">"dot_matches_all"</span><span data-if="python" style="display:none">"dot_matches_all"</span></i>:
Allow the <code>'.'</code> character to also match newlines
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'newline_lf'</span><span data-if="c" style="display:none">"newline_lf"</span><span data-if="cpp" style="display:none">"newline_lf"</span><span data-if="com" style="display:none">"newline_lf"</span><span data-if="dotnet" style="display:none">"newline_lf"</span><span data-if="python" style="display:none">"newline_lf"</span></i>, <i><span data-if="hdevelop" style="display:inline">'newline_crlf'</span><span data-if="c" style="display:none">"newline_crlf"</span><span data-if="cpp" style="display:none">"newline_crlf"</span><span data-if="com" style="display:none">"newline_crlf"</span><span data-if="dotnet" style="display:none">"newline_crlf"</span><span data-if="python" style="display:none">"newline_crlf"</span></i>, <i><span data-if="hdevelop" style="display:inline">'newline_cr'</span><span data-if="c" style="display:none">"newline_cr"</span><span data-if="cpp" style="display:none">"newline_cr"</span><span data-if="com" style="display:none">"newline_cr"</span><span data-if="dotnet" style="display:none">"newline_cr"</span><span data-if="python" style="display:none">"newline_cr"</span></i>:
Specify the encoding of newlines in the input data.
The default is LF on all systems (even though in Windows files
usually CRLF is used as line break, when reading a file into memory
the read operators return for every line break just
<code>'</code><span title="33" style="vertical-align:-0.186607em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1.32152em" height="0.840813em" viewBox="0 0 21.144241 13.453003">
<!-- Original BoundingBox: -10.572128 -6.726501 10.572113 6.726501 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_92">
      <path style="fill-rule: evenodd;" d="M155.000000 -650.000000C148.000000 -664.000000,143.000000 -668.000000,134.000000 -668.000000C123.000000 -668.000000,113.000000 -659.000000,113.000000 -649.000000C113.000000 -645.000000,114.000000 -641.000000,118.000000 -633.000000L445.000000 63.000000C452.000000 77.000000,457.000000 81.000000,467.000000 81.000000C477.000000 81.000000,487.000000 72.000000,487.000000 62.000000C487.000000 58.000000,486.000000 53.000000,482.000000 46.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_110">
      <path style="fill-rule: evenodd;" d="M167.000000 -417.000000L92.000000 -417.000000C74.000000 -417.000000,65.000000 -410.000000,65.000000 -397.000000C65.000000 -383.000000,74.000000 -376.000000,92.000000 -376.000000L126.000000 -376.000000L126.000000 -41.000000L81.000000 -41.000000C62.000000 -41.000000,53.000000 -34.000000,53.000000 -21.000000C53.000000 -7.000000,62.000000 -0.000000,81.000000 -0.000000L212.000000 -0.000000C230.000000 -0.000000,239.000000 -7.000000,239.000000 -21.000000C239.000000 -34.000000,230.000000 -41.000000,212.000000 -41.000000L167.000000 -41.000000L167.000000 -294.000000C199.000000 -335.000000,209.000000 -346.000000,224.000000 -357.000000C252.000000 -380.000000,281.000000 -390.000000,319.000000 -390.000000C358.000000 -390.000000,377.000000 -384.000000,401.000000 -364.000000C426.000000 -343.000000,439.000000 -318.000000,439.000000 -288.000000L439.000000 -41.000000L405.000000 -41.000000C387.000000 -41.000000,378.000000 -34.000000,378.000000 -21.000000C378.000000 -7.000000,387.000000 -0.000000,405.000000 -0.000000L514.000000 -0.000000C532.000000 -0.000000,541.000000 -7.000000,541.000000 -21.000000C541.000000 -34.000000,532.000000 -41.000000,514.000000 -41.000000L480.000000 -41.000000L480.000000 -295.000000C480.000000 -372.000000,412.000000 -431.000000,323.000000 -431.000000C261.000000 -431.000000,225.000000 -412.000000,167.000000 -348.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.443863 10.467285)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHpcrr8r_92"></use>
    <use xlink:href="#GLYPHpcrr8r_110" x="6.000092"></use>
  </g>
</svg></span><code>'</code>,
which is the same as LF).
</p>
</li>
</ul>
<p>For general information about string operations see
<a href="toc_tuple_stringoperations.html">Tuple / String Operations</a>.
</p>
<p>If the input parameter <a href="#Data"><i><code><span data-if="hdevelop" style="display:inline">Data</span><span data-if="c" style="display:none">Data</span><span data-if="cpp" style="display:none">Data</span><span data-if="com" style="display:none">Data</span><span data-if="dotnet" style="display:none">data</span><span data-if="python" style="display:none">data</span></code></i></a> is an empty tuple, 该算子 returns
an empty tuple. If <a href="#Expression"><i><code><span data-if="hdevelop" style="display:inline">Expression</span><span data-if="c" style="display:none">Expression</span><span data-if="cpp" style="display:none">Expression</span><span data-if="com" style="display:none">Expression</span><span data-if="dotnet" style="display:none">expression</span><span data-if="python" style="display:none">expression</span></code></i></a> is an empty tuple,
an exception is raised.
</p>
<h3>Unicode code points versus bytes</h3>
<p>Regular expression matching operates on Unicode code points. One Unicode
code point may be composed of multiple bytes in the UTF-8 string.
If regular expression matching should only match on bytes, this operator can
be switched to byte mode with
<a href="set_system.html"><code><span data-if="hdevelop" style="display:inline">set_system('tsp_tuple_string_operator_mode','byte')</span><span data-if="c" style="display:none">set_system("tsp_tuple_string_operator_mode","byte")</span><span data-if="cpp" style="display:none">SetSystem("tsp_tuple_string_operator_mode","byte")</span><span data-if="com" style="display:none">SetSystem("tsp_tuple_string_operator_mode","byte")</span><span data-if="dotnet" style="display:none">SetSystem("tsp_tuple_string_operator_mode","byte")</span><span data-if="python" style="display:none">set_system("tsp_tuple_string_operator_mode","byte")</span></code></a>.  If
<i><span data-if="hdevelop" style="display:inline">'filename_encoding'</span><span data-if="c" style="display:none">"filename_encoding"</span><span data-if="cpp" style="display:none">"filename_encoding"</span><span data-if="com" style="display:none">"filename_encoding"</span><span data-if="dotnet" style="display:none">"filename_encoding"</span><span data-if="python" style="display:none">"filename_encoding"</span></i> is set to <i><span data-if="hdevelop" style="display:inline">'locale'</span><span data-if="c" style="display:none">"locale"</span><span data-if="cpp" style="display:none">"locale"</span><span data-if="com" style="display:none">"locale"</span><span data-if="dotnet" style="display:none">"locale"</span><span data-if="python" style="display:none">"locale"</span></i> (legacy), this
operator always uses the byte mode.
</p>
<h3>HDevelop In-line Operation</h3>
<p>HDevelop provides an in-line operation for <code><span data-if="hdevelop" style="display:inline">tuple_regexp_match</span><span data-if="c" style="display:none">tuple_regexp_match</span><span data-if="cpp" style="display:none">TupleRegexpMatch</span><span data-if="com" style="display:none">TupleRegexpMatch</span><span data-if="dotnet" style="display:none">TupleRegexpMatch</span><span data-if="python" style="display:none">tuple_regexp_match</span></code>,
which can be used in an expression in the following syntax:
</p>
<p><a href="../../manuals/hdevelop_users_guide/hdevelop_language_operations_string_0000.html">
<code>Matches := regexp_match(Data, Expression)</code>
</a>
</p>
<h2 id="sec_execution">运行信息</h2>
<ul>
  <li>Multithreading type: independent (runs in parallel even with exclusive operators).</li>
<li>多线程作用域:全局(可以从任何线程调用)。</li>
  <li>未经并行化处理。</li>
</ul>
<h2 id="sec_parameters">参数表</h2>
  <div class="par">
<div class="parhead">
<span id="Data" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Data</span><span data-if="c" style="display:none">Data</span><span data-if="cpp" style="display:none">Data</span><span data-if="com" style="display:none">Data</span><span data-if="dotnet" style="display:none">data</span><span data-if="python" style="display:none">data</span></code></b> (input_control)  </span><span>string(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[str]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string)</span><span data-if="dotnet" style="display:none"> (<i>string</i>)</span><span data-if="cpp" style="display:none"> (<i>HString</i>)</span><span data-if="c" style="display:none"> (<i>char*</i>)</span></span>
</div>
<p class="pardesc">Input strings to match.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Expression" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Expression</span><span data-if="c" style="display:none">Expression</span><span data-if="cpp" style="display:none">Expression</span><span data-if="com" style="display:none">Expression</span><span data-if="dotnet" style="display:none">expression</span><span data-if="python" style="display:none">expression</span></code></b> (input_control)  </span><span>string(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[str]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string)</span><span data-if="dotnet" style="display:none"> (<i>string</i>)</span><span data-if="cpp" style="display:none"> (<i>HString</i>)</span><span data-if="c" style="display:none"> (<i>char*</i>)</span></span>
</div>
<p class="pardesc">Regular expression.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>
    <span data-if="hdevelop" style="display:inline">'.*'</span>
    <span data-if="c" style="display:none">".*"</span>
    <span data-if="cpp" style="display:none">".*"</span>
    <span data-if="com" style="display:none">".*"</span>
    <span data-if="dotnet" style="display:none">".*"</span>
    <span data-if="python" style="display:none">".*"</span>
</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span><span data-if="hdevelop" style="display:inline">'.*'</span><span data-if="c" style="display:none">".*"</span><span data-if="cpp" style="display:none">".*"</span><span data-if="com" style="display:none">".*"</span><span data-if="dotnet" style="display:none">".*"</span><span data-if="python" style="display:none">".*"</span>, <span data-if="hdevelop" style="display:inline">'ignore_case'</span><span data-if="c" style="display:none">"ignore_case"</span><span data-if="cpp" style="display:none">"ignore_case"</span><span data-if="com" style="display:none">"ignore_case"</span><span data-if="dotnet" style="display:none">"ignore_case"</span><span data-if="python" style="display:none">"ignore_case"</span>, <span data-if="hdevelop" style="display:inline">'multiline'</span><span data-if="c" style="display:none">"multiline"</span><span data-if="cpp" style="display:none">"multiline"</span><span data-if="com" style="display:none">"multiline"</span><span data-if="dotnet" style="display:none">"multiline"</span><span data-if="python" style="display:none">"multiline"</span>, <span data-if="hdevelop" style="display:inline">'dot_matches_all'</span><span data-if="c" style="display:none">"dot_matches_all"</span><span data-if="cpp" style="display:none">"dot_matches_all"</span><span data-if="com" style="display:none">"dot_matches_all"</span><span data-if="dotnet" style="display:none">"dot_matches_all"</span><span data-if="python" style="display:none">"dot_matches_all"</span>, <span data-if="hdevelop" style="display:inline">'newline_lf'</span><span data-if="c" style="display:none">"newline_lf"</span><span data-if="cpp" style="display:none">"newline_lf"</span><span data-if="com" style="display:none">"newline_lf"</span><span data-if="dotnet" style="display:none">"newline_lf"</span><span data-if="python" style="display:none">"newline_lf"</span>, <span data-if="hdevelop" style="display:inline">'newline_crlf'</span><span data-if="c" style="display:none">"newline_crlf"</span><span data-if="cpp" style="display:none">"newline_crlf"</span><span data-if="com" style="display:none">"newline_crlf"</span><span data-if="dotnet" style="display:none">"newline_crlf"</span><span data-if="python" style="display:none">"newline_crlf"</span>, <span data-if="hdevelop" style="display:inline">'newline_cr'</span><span data-if="c" style="display:none">"newline_cr"</span><span data-if="cpp" style="display:none">"newline_cr"</span><span data-if="com" style="display:none">"newline_cr"</span><span data-if="dotnet" style="display:none">"newline_cr"</span><span data-if="python" style="display:none">"newline_cr"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="Matches" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Matches</span><span data-if="c" style="display:none">Matches</span><span data-if="cpp" style="display:none">Matches</span><span data-if="com" style="display:none">Matches</span><span data-if="dotnet" style="display:none">matches</span><span data-if="python" style="display:none">matches</span></code></b> (output_control)  </span><span>string(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[str]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string)</span><span data-if="dotnet" style="display:none"> (<i>string</i>)</span><span data-if="cpp" style="display:none"> (<i>HString</i>)</span><span data-if="c" style="display:none"> (<i>char*</i>)</span></span>
</div>
<p class="pardesc">Found matches.</p>
</div>
<h2 id="sec_example_all">例程 (HDevelop)</h2>
<pre class="example">
tuple_regexp_match ('abba', 'a*b*', Result)
* Returns 'abb'

tuple_regexp_match ('abba', 'b*a*', Result)
* Returns 'a'

tuple_regexp_match ('abba', 'b+a*', Result)
* Returns 'bba'

tuple_regexp_match ('abba', '.a', Result)
* Returns 'ba'

tuple_regexp_match ('abba', '[ab]*', Result)
* Returns 'abba'

tuple_regexp_match (['img123','img124'], 'img(.*)', Result)
* Returns ['123','124']

tuple_regexp_match ('mydir/img001.bmp', 'img(.*)\\.(.*)', Result)
* Returns ['001','bmp']
</pre>
<h2 id="sec_alternatives">可替代算子</h2>
<p>
<code><a href="tuple_strstr.html"><span data-if="hdevelop" style="display:inline">tuple_strstr</span><span data-if="c" style="display:none">tuple_strstr</span><span data-if="cpp" style="display:none">TupleStrstr</span><span data-if="com" style="display:none">TupleStrstr</span><span data-if="dotnet" style="display:none">TupleStrstr</span><span data-if="python" style="display:none">tuple_strstr</span></a></code>
</p>
<h2 id="sec_see">参考其它</h2>
<p>
<code><a href="tuple_regexp_replace.html"><span data-if="hdevelop" style="display:inline">tuple_regexp_replace</span><span data-if="c" style="display:none">tuple_regexp_replace</span><span data-if="cpp" style="display:none">TupleRegexpReplace</span><span data-if="com" style="display:none">TupleRegexpReplace</span><span data-if="dotnet" style="display:none">TupleRegexpReplace</span><span data-if="python" style="display:none">tuple_regexp_replace</span></a></code>, 
<code><a href="tuple_regexp_test.html"><span data-if="hdevelop" style="display:inline">tuple_regexp_test</span><span data-if="c" style="display:none">tuple_regexp_test</span><span data-if="cpp" style="display:none">TupleRegexpTest</span><span data-if="com" style="display:none">TupleRegexpTest</span><span data-if="dotnet" style="display:none">TupleRegexpTest</span><span data-if="python" style="display:none">tuple_regexp_test</span></a></code>, 
<code><a href="tuple_regexp_select.html"><span data-if="hdevelop" style="display:inline">tuple_regexp_select</span><span data-if="c" style="display:none">tuple_regexp_select</span><span data-if="cpp" style="display:none">TupleRegexpSelect</span><span data-if="com" style="display:none">TupleRegexpSelect</span><span data-if="dotnet" style="display:none">TupleRegexpSelect</span><span data-if="python" style="display:none">tuple_regexp_select</span></a></code>
</p>
<h2 id="sec_references">References</h2>
<p>

Perl Compatible Regular Expressions (PCRE), http://www.pcre.org/
</p>
<h2 id="sec_module">模块</h2>
<p>
Foundation</p>
<!--OP_REF_FOOTER_START-->
<hr>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<div class="footer">
<div class="copyright">HALCON算子参考手册 Copyright © 2015-2023 51Halcon</div>
</div>
</div>
</body>
</html>
